package scraper;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class BorrarDuplicados {

	static void borrar(Configuracion config) throws IOException {
		File folder = new File(config.getDirTrabajo() + "PaginasDescargadas");
		File[] listOfMediosPrensa = folder.listFiles(new FileFilter() {  // obtengo las carpetas de fechas
			public boolean accept(File pathname) {
				return pathname.isDirectory();  // descarto los que no son carpetas
			}
		});
		for (File medioPrensa : listOfMediosPrensa) {
			Map<String, String> tablaArchivos = new HashMap();
			File[] listOfFolders = medioPrensa.listFiles(new FileFilter() {  // obtengo las carpetas de fechas
				public boolean accept(File pathname) {
					return pathname.isDirectory();  // descarto los que no son carpetas
				}
			});
			for (File carpeta_fecha : listOfFolders) {
				File[] listOfFiles = carpeta_fecha.listFiles();
				for (File file1 : listOfFiles) {
					String nomb_arch = file1.getName();
					if (!tablaArchivos.containsKey(nomb_arch)) {
						tablaArchivos.put(nomb_arch, carpeta_fecha.getName());
					} else {
						String fecha_string1 = tablaArchivos.get(nomb_arch);
						String fecha_string2 = carpeta_fecha.getName();
						if (fecha_string1.compareTo(fecha_string2) < 0) {
							File archivoBorrar = new File(medioPrensa.getPath() + File.separator + fecha_string1 + File.separator + nomb_arch);
							archivoBorrar.delete();
							tablaArchivos.put(nomb_arch, fecha_string2);
						} else if (fecha_string1.compareTo(fecha_string2) > 0) {
							File archivoBorrar = new File(medioPrensa.getPath() + File.separator + fecha_string2 + File.separator + nomb_arch);
							archivoBorrar.delete();
						} else {
							throw new IOException("son el mismo archivo, aca hay algo mal");
						}
					}
				}
			}
		}
	}

}
